#ifndef _SPRITE_INTERNAL_H
#define _SPRITE_INTERNAL_H

#include "VertexDataWrapper.h"
#include "VertexBufferWrapper.h"

namespace Graphics
{
	class Effect;
	class Texture;

	class SpriteInternal
	{
		friend class Sprite;

	public:
		~SpriteInternal();

		void Render();
		const unsigned int GetID();
	private:
		SpriteInternal();
		
		bool Init(const std::string& aFileName);
	private:
		static unsigned int ourIDCounter;
		const unsigned int myID;

		Effect* myEffect;
		VertexDataWrapper myVertexData;
		VertexBufferWrapper myVertexBuffer;
		Texture* myTexture;

		Vector2f myPosition;
		bool myIsVisible;
	};
}

#endif